/**
 * @Creator: eyes
 * @Date: 2019/12/23
 */
import moment from 'moment';

// 服务端对时间区间的定义.
export const TIME_DURATION = {
    // 十分钟
    MINUTES_10: 10,
    // 一天
    ONE_DAY: 1,
    ONE_WEEK_DAYS: 7,
    DAY_TIMESTAMP: 24 * 60 * 60 * 1000
};

export const CORE_PAGES_CONFIG = [
    {
        bizTypeName: '高途',
        bizName: 'gt-m',
        path: '/',
        label: '高途首页-首屏时间',
    },
    {
        bizTypeName: '好课',
        bizName: 'hk-m',
        path: '/',
        label: '好课首页-首屏时间',
    },
    {
        bizTypeName: '高途',
        bizName: 'gt-m',
        path: '/learn/',
        label: '高途详情页-首屏时间',
    },
    {
        bizTypeName: '好课',
        bizName: 'hk-m',
        path: '/mt/cellClass',
        label: '好课详情页-首屏时间',
    },
    {
        bizTypeName: '高途',
        bizName: 'gt-m',
        path: '/study',
        label: '高途学习中心-首屏时间',
    },
    {
        bizTypeName: '好课',
        bizName: 'hk-m',
        path: '/mt/courseCenter',
        label: '好课学习中心-首屏时间',
    },
];

// 性能指标名称
export const PERFORMANCE_TARGET_TYPE = {
    // 首屏时间
    TTFP: 1,
    FSP: 9,
    FI: 10,
    FR: 11
};

// 1：首屏均值，2：85th,3：90th,4：95th值
export const MEASURE_TYPE = [
    {value: 1, label: '均值'},
    {value: 2, label: '85th'},
    {value: 3, label: '90th'},
    {value: 4, label: '95th'}
];

// 性能分级: 优、良、差
export const PERFORMANCE_LEVEL = {
    EXCELLENT: 1,
    GOOD: 2,
    BAD: 3,
};

// 性能排行时间粒度
export const TIME_MEASURE_DATA = [
    {
        key: 1,
        value: '按天'
    },
    {
        key: 7,
        value: '按周'
    }
];
export const PAGER = {pageSize: 100, pageNum: 1};

export const SEARCH_WAIT_TIME = 200;
// 定义指标的枚举值
export const TARGET_TYPE_ENUM = {
    FSP: 9,
    FI: 10,
    FR: 11,
    FIP: 12,
    TTDC: 13,
    TTFP: 1,
    TTSR: 2,
    resp: 3,
    DOMTree: 4,
    pageReady: 5,
    TTFB: 6,
    DNS: 7,
    TCP: 8
};

// 指标名称
export const TARGET_TYPE = new Map([
    [TARGET_TYPE_ENUM.FSP, 'FSP'],
    [TARGET_TYPE_ENUM.FI, 'FI'],
    [TARGET_TYPE_ENUM.FR, 'FR'],
    [TARGET_TYPE_ENUM.FIP, 'FIP'],
    [TARGET_TYPE_ENUM.TTDC, 'TTDC'],
    [TARGET_TYPE_ENUM.TTFP, '首屏时间'],
    [TARGET_TYPE_ENUM.TTSR, '白屏时间'],
    [TARGET_TYPE_ENUM.resp, '响应时间'],
    [TARGET_TYPE_ENUM.DOMTree, 'DOM树解析时间'],
    [TARGET_TYPE_ENUM.pageReady, '页面交互时间'],
    [TARGET_TYPE_ENUM.TTFB, 'TTFB'],
    [TARGET_TYPE_ENUM.DNS, 'DNS时间'],
    [TARGET_TYPE_ENUM.TCP, 'TCP时间'],
]);

// 特别指标dataIndex
export const TARGET_DATA_INDEX = new Map([
    [TARGET_TYPE_ENUM.FSP, 'fsp'],
    [TARGET_TYPE_ENUM.FI, 'fi'],
    [TARGET_TYPE_ENUM.FR, 'fr'],
]);

// 性能分布 维度
export const INCLUDE = new Map([
    ['-1', 'NONE'],
    ['1', 'PC'],
    ['2', 'ANDROID'],
    ['3', 'IPHONE'],
    ['4', 'IPAD'],
    ['5', 'M'],
    ['6', 'WIN'],
    ['7', 'MAC'],
    ['8', 'WX'],
    ['9', 'MP']
]);

// pageId  核心页面id
export const CORE_PAGE_ID = 180;

// 性能排行业务线和应用的参数
export const PERFORMANCE_RANK_DIMENSION = {
    SERVICE_LINE: 'biz_type_name',
    APPLICATION: 'biz_name',
    pager: PAGER
};
// 性能排行 指标类型 targetType
export const RANK_TARGET = [
    {
        key: TARGET_TYPE_ENUM.TTFP,
        value: '首屏时间'
    },
    {
        key: TARGET_TYPE_ENUM.FSP,
        value: 'FSP时间'
    },
    {
        key: TARGET_TYPE_ENUM.FI,
        value: 'FI时间'
    },
    {
        key: TARGET_TYPE_ENUM.FR,
        value: 'FR时间'
    },
    {
        key: TARGET_TYPE_ENUM.FIP,
        value: 'FIP时间'
    }
];
// 性能排行 分为值 measureType
export const RANK_MEASURE = [
    {
        key: 1,
        value: '均值'
    },
    {
        key: 2,
        value: '85th'
    },
    {
        key: 3,
        value: '90th'
    },
    {
        key: 4,
        value: '95th'
    }
];
// 性能排行首屏选择参数
export const PERFORMANCE_RANK_TABS = [
    {
        key: 1,
        value: '优（小于等于1s)'
    },
    {
        key: 2,
        value: '良 (1s~3s)'
    },
    {
        key: 3,
        value: '差 (大于3s)'
    }
];
// 春季续班四个看板：中心、概览、学部、大小组 公共的tab切换 dimensionName 和 默认值
export const userRoundIdx = 'user_round_idx';
// 5月17凌晨之前是1轮班，之后是二轮班
const endDay = localStorage.firstRoundEndDay || +new Date('2021-05-17 00:00:01');

export const initUserRoundIdx = new Date() < endDay ? 1 : 2;
